MEMEQUANTMEMEQUANT
This script is a comprehensive and specialized tool designed for tracking trends and money flow within meme coins and DEX tokens. By combining various features such as trend lines, Fibonacci levels, and category-based indices, it helps traders make informed decisions in highly volatile markets.
Key Features:
1. Category-Based Indices:
• Tracks the performance of token categories like:
• AI Agent Tokens
• AI Tokens
• Animal Tokens
• Murad Picks
• Each category consists of leader tokens, which are selected based on their higher market cap and trading volume. These tokens act as benchmarks for their respective categories.
• Visualizes category indices in a line chart to identify trends and compare money flow between categories.
2. Fibonacci Correction Zones:
• Highlights key retracement levels (e.g., 60%, 70%, 80%).
• These levels are crucial for identifying potential reversal zones, commonly observed in meme coin trading patterns.
• Fully customizable to match individual trading strategies.
3. Trend Lines:
• Automatically detects major support and resistance levels.
• Separates long-term and short-term trend lines, allowing traders to focus on significant price movements.
4. Enhanced Info Table:
• Provides real-time insights, including:
• % Distance from All-Time High (ATH)
• Current Trading Volume
• 50-bar Average Volume
• Volume Change Percentage
• Displays information in an easy-to-read table on the chart.
5. Customizable Settings:
• Users can adjust transparency, colors, and ranges for Fibonacci zones, trend lines, and the table.
• Enables or disables individual features (e.g., Fibonacci, trend lines, table) based on preferences.
How It Works:
1. Tracking Money Flow Across Categories:
• The script calculates the market cap to volume ratio for each category of tokens to help identify the dominant trend.
• A higher ratio indicates greater liquidity and stability, while a lower ratio suggests higher volatility or price manipulation.
2. Identifying Retracement Patterns:
• Leverages common retracement behaviors (e.g., 70% correction levels) observed in meme coins to detect potential reversal zones.
• Combines this with trend line analysis for additional confirmation.
3. Leader Tokens as Indicators:
• Each category is represented by its leader tokens, which have historically higher liquidity and market cap. This allows the script to accurately reflect the overall trend in each category.
When to Use:
• Trend Analysis: To identify which category (e.g., AI Tokens or Animal Tokens) is leading the market.
• Reversal Zones: To spot potential support or resistance levels using Fibonacci zones.
• Money Flow: To understand how capital is moving across different token categories in real time.
Who Is This For?
This script is tailored for:
• Traders specializing in meme coins and DEX tokens.
• Those looking for an edge in trend-based trading by analyzing market cap, volume, and retracement levels.
• Anyone aiming to track money flow dynamics between different token categories.
Future Updates:
This is the initial version of the script. Future updates may include:
• Support for additional token categories and DEX data.
• More advanced pattern recognition and alerts for volume and price anomalies.
• Enhanced visualization for historical data trends.
With this tool, traders can combine money flow analysis with the 60-70% retracement strategy, turning it into a powerful assistant for navigating the fast-paced world of meme coins and DEX tokens.
This script is designed to provide meaningful insights and practical utility for traders, adhering to TradingView’s standards for originality, clarity, and user value.
Cari dalam skrip untuk "THE SCRIPT"
[blackcat] L3 Counter Peacock Spread█ OVERVIEW
The script titled " L3 Counter Peacock Spread" is an indicator designed for use in TradingView. It calculates and plots various moving averages, K lines derived from these moving averages, additional simple moving averages (SMAs), weighted moving averages (WMAs), and other technical indicators like slope calculations. The primary function of the script is to provide a comprehensive set of visual tools that traders can use to identify trends, potential support/resistance levels, and crossover signals.
█ LOGICAL FRAMEWORK
Input Parameters:
There are no explicit input parameters defined; all variables are hardcoded or calculated within the script.
Calculations:
• Moving Averages: Calculates Simple Moving Averages (SMA) using ta.sma.
• Slope Calculation: Computes the slope of a given series over a specified period using linear regression (ta.linreg).
• K Lines: Defines multiple exponentially adjusted SMAs based on a 30-period MA and a 1-period MA.
• Weighted Moving Average (WMA): Custom function to compute WMAs by iterating through price data points.
• Other Indicators: Includes Exponential Moving Average (EMA) for momentum calculation.
Plotting:
Various elements such as MAs, K lines, conditional bands, additional SMAs, and WMAs are plotted on the chart overlaying the main price action.
No loops control the behavior beyond those used in custom functions for calculating WMAs. Conditional statements determine the coloring of certain plot lines based on specific criteria.
█ CUSTOM FUNCTIONS
calculate_slope(src, length) :
• Purpose: To calculate the slope of a time-series data point over a specified number of periods.
• Functionality: Uses linear regression to find the current and previous slopes and computes their difference scaled by the timeframe multiplier.
• Parameters:
– src: Source of the input data (e.g., closing prices).
– length: Periodicity of the linreg calculation.
• Return Value: Computed slope value.
calculate_ma(source, length) :
• Purpose: To calculate the Simple Moving Average (SMA) of a given source over a specified period.
• Functionality: Utilizes TradingView’s built-in ta.sma function.
• Parameters:
– source: Input data series (e.g., closing prices).
– length: Number of bars considered for the SMA calculation.
• Return Value: Calculated SMA value.
calculate_k_lines(ma30, ma1) :
• Purpose: Generates multiple exponentially adjusted versions of a 30-period MA relative to a 1-period MA.
• Functionality: Multiplies the 30-period MA by coefficients ranging from 1.1 to 3 and subtracts multiples of the 1-period MA accordingly.
• Parameters:
– ma30: 30-period Simple Moving Average.
– ma1: 1-period Simple Moving Average.
• Return Value: Returns an array containing ten different \u2003\u2022 "K line" values.
calculate_wma(source, length) :
• Purpose: Computes the Weighted Moving Average (WMA) of a provided series over a defined period.
• Functionality: Iterates backward through the last 'n' bars, weights each bar according to its position, sums them up, and divides by the total weight.
• Parameters:
– source: Price series to average.
– length: Length of the lookback window.
• Return Value: Calculated WMA value.
█ KEY POINTS AND TECHNIQUES
• Advanced Pine Script Features: Utilization of custom functions for encapsulating complex logic, leveraging TradingView’s library functions (ta.sma, ta.linreg, ta.ema) for efficient computations.
• Optimization Techniques: Efficient computation of K lines via pre-calculated components (multiples of MA30 and MA1). Use of arrays to store intermediate results which simplifies plotting.
• Best Practices: Clear separation between calculation and visualization sections enhances readability and maintainability. Usage of color.new() allows dynamic adjustments without hardcoding colors directly into plot commands.
• Unique Approaches: Introduction of K lines provides an alternative representation of trend strength compared to traditional MAs. Implementation of conditional band coloring adds real-time context to existing visual cues.
█ EXTENDED KNOWLEDGE AND APPLICATIONS
Potential Modifications/Extensions:
• Adding more user-defined inputs for lengths of MAs, K lines, etc., would make the script more flexible.
• Incorporating alert conditions based on crossovers between key lines could enhance automated trading strategies.
Application Scenarios:
• Useful for both intraday and swing trading due to the combination of short-term and long-term MAs along with trend analysis via slopes and K lines.
• Can be integrated into larger systems combining this indicator with others like oscillators or volume-based metrics.
Related Concepts:
• Understanding how linear regression works internally aids in grasping the slope calculation.
• Familiarity with WMA versus SMA helps appreciate why different types of averaging might be necessary depending on market dynamics.
• Knowledge of candlestick patterns can complement insights gained from this indicator.
Volume-MACD-RSI Integrated StrategyDescription:
This script integrates three well-known technical analysis tools—Volume, MACD, and RSI—into a single signal meant to help traders identify potential turning points under strong market conditions.
Concept Overview:
Volume Filter: We compare the current bar’s volume to a 20-period volume average and require it to exceed a specified multiplier. This ensures that signals occur only during periods of heightened market participation. The logic is that moves on low volume are less reliable, so we wait for increased activity to confirm potential trend changes.
MACD Momentum Shift:
We incorporate MACD crossovers to determine when momentum is changing direction. MACD is a popular momentum indicator that identifies shifts in trend by comparing short-term and long-term EMAs. A bullish crossover (MACD line crossing above the signal line) may suggest upward momentum is building, while a bearish crossunder can indicate momentum turning downward.
RSI Market Condition Check:
RSI helps us identify overbought or oversold conditions. By requiring that RSI be oversold on buy signals and overbought on sell signals, we attempt to pinpoint entries where price could be at an extreme. The idea is to position entries or exits at junctures where price may be due for a reversal.
How the Script Works Together:
Volume Confirmation: No signals fire unless there’s strong volume. This reduces false positives.
MACD Momentum Check: Once volume confirms market interest, MACD crossover events serve as a trigger to initiate consideration of a trade signal.
RSI Condition: Finally, RSI determines whether the market is at an extreme. This final layer helps ensure we only act on signals that have both momentum shift and a price at an extreme level, potentially increasing the reliability of signals.
Intended Use:
This script can help highlight potential reversal points or trend shifts during active market periods.
Traders can use these signals as a starting point for deeper analysis. For instance, a “BUY” arrow may prompt a trader to investigate the market context, confirm with other methods, or look for patterns that further support a long entry.
The script is best used on markets with reliable volume data, such as stocks or futures, and can be experimented with across different timeframes. Adjusting the RSI thresholds, MACD parameters, and volume multiplier can help tailor it to specific instruments or trading styles.
Chart Setup:
When adding this script to your chart, it should be the only indicator present, so you can clearly see the red “BUY” arrows and green “SELL” arrows at the candle closes where signals occur.
The chart should be kept clean and uncluttered for clarity. No other indicators are necessary since the logic is already integrated into this single script.
Coinbase Premium HeatmapCoinbase Premium Heatmap visualizes spot bitcoin premium (or discount) on Coinbase, relative to other spot markets, visualized as a heatmap overlay.
OPTIMIZED FOR CLARITY
Coinbase Premium can whipsaw quickly, with dramatic state changes over relatively brief periods, unnecessarily complicating its use (for our purposes).
To mitigate whipsaws, the script (a) averages premium/discount on an hourly basis, and (b) introduces lightweight exponential smoothing, to further simplify/clarify state.
WHY IT MATTERS
Spot Coinbase premium is a strong proxy for bullish institutional sentiment and net inflows/accumulation by western financial institutions, ETF providers, and corporations (like MicroStrategy) adding bitcoin to their treasury.
In aggregate, this holder cohort drives trend & sentiment more than any other, so it's important to know their directional bias.
HOW IT'S CALCULATED
Premium / discount calculates the spread between Coinbase spot BTC price, and spot price on Binance + Bybit. Calculation is averaged hourly, with light exponential smoothing.
HOW WE USE THE SCRIPT
When assessing optimal moments to hedge exposure (or sell spot assets) near a presumed impending cycle top, awareness of institutional sentiment is a crucial variable. This script:
(a) Filters out unnecessarily early cycle exit signals (if Coinbase premium is still present)
(b) Confirms other metrics that indicate an impending cycle top (if the neutral to bearish institutional sentiment we'd expect to see is in effect), and
(c) Visualizes state changes (from bearish to bullish & vice versa), that often make for good swing entries & exits on lower timeframes.
Market Stats Panel [Daveatt]█ Introduction
I've created a script that brings TradingView's watchlist stats panel functionality directly to your charts. This isn't just another performance indicator - it's a pixel-perfect (kidding) recreation of TradingView's native stats panel.
Important Notes
You might need to adjust manually the scaling the firs time you're using this script to display nicely all the elements.
█ Core Features
Performance Metrics
The panel displays key performance metrics (1W, 1M, 3M, 6M, YTD, 1Y) in real-time, with color-coded boxes (green for positive, red for negative) for instant performance assessment.
Display Modes
Switch seamlessly between absolute prices and percentage returns, making it easy to compare assets across different price scales.
Absolute mode
Percent mode
Historical Comparison
View year-over-year performance with color-coded lines, allowing for quick historical pattern recognition and analysis.
Data Structure Innovation
Let's talk about one of the most interesting challenges I faced. PineScript has this quirky limitation where request.security() can only return 127 tuples at most. £To work around this, I implemented a dual-request system. The first request handles indices 0-63, while the second one takes care of indices 64-127.
This approach lets us maintain extensive historical data without compromising script stability.
And here's the cool part: if you need to handle even more years of historical data, you can simply extend this pattern by adding more request.security() calls.
Each additional call can fetch another batch of monthly open prices and timestamps, following the same structure I've used.
Think of it as building with LEGO blocks - you can keep adding more pieces to extend your historical reach.
Flexible Date Range
Unlike many scripts that box you into specific timeframes, I've designed this one to be completely flexible with your date selection. You can set any start year, any end year, and the script will dynamically scale everything to match. The visual presentation automatically adjusts to whatever range you choose, ensuring your data is always displayed optimally.
█ Customization Options
Visual Settings
The panel's visual elements are highly customizable. You can adjust the panel width to perfectly fit your workspace, fine-tune the line thickness to match your preferences, and enjoy the pre-defined year color scheme that makes tracking historical performance intuitive and visually appealing.
Box Dimensions
Every aspect of the performance boxes can be tailored to your needs. Adjust their height and width, fine-tune the spacing between them, and position the entire panel exactly where you want it on your chart. The goal is to make this tool feel like it's truly yours.
█ Technical Challenges Solved
Polyline Precision
Creating precise polylines was perhaps the most demanding aspect of this project.
The challenge was ensuring accurate positioning across both time and price axes, while handling percentage mode scaling with precision.
The script constantly updates the current year's data in real-time, seamlessly integrating new information as it comes in.
Axis Management
Getting the axes right was like solving a complex puzzle. The Y-axis needed to scale dynamically whether you're viewing absolute prices or percentages.
The X-axis required careful month labeling that stays clean and readable regardless of your selected timeframe.
Everything needed to align perfectly while maintaining proper spacing in all conditions.
█ Final Notes
This tool transforms complex market data into clear, actionable insights. Whether you're day trading or analyzing long-term trends, it provides the information you need to make informed decisions. And remember, while we can't predict the future, we can certainly be better prepared for it with the right tools at hand.
A word of warning though - seeing those red numbers in a beautifully formatted panel doesn't make them any less painful! 😉
---
Happy Trading! May your charts be green and your stops be far away!
Daveatt
Consecutive CandlesTrading as Easy as One, Two, and Three
Unlock the power of simplicity in trading with this innovative script inspired by KepalaBesi. Designed for traders of all levels, this script provides a user-friendly approach to market analysis, enabling you to make informed trading decisions effortlessly.
Key Features:
Simplified Signals: Receive clear buy and sell signals based on robust technical indicators. The script streamlines your trading process, allowing you to focus on execution rather than analysis.
Customizable Settings: Tailor the script to fit your trading style. Adjust parameters to suit your risk tolerance and market preferences, ensuring a personalized trading experience.
Visual Clarity: Benefit from intuitive visual cues on your chart, making it easy to identify optimal entry and exit points. The clean interface helps you make quick decisions without confusion.
Whether you’re a seasoned trader or just starting, "Trading as Easy as One, Two, and Three" simplifies your trading journey, turning complex strategies into straightforward actions. Embrace a more efficient way to trade and elevate your performance in the markets!
Get Started Today!
Join the community of traders who have discovered the ease of trading with KepalaBesi's inspired script. Elevate your trading experience and achieve your financial goals with confidence!
N Bar Reversal Detector [LuxAlgo]The N Bar Reversal Detector is designed to detect and highlight N-bar reversal patterns in user charts, where N represents the length of the candle sequence used to detect the patterns. The script incorporates various trend indicators to filter out detected signals and offers a range of customizable settings to fit different trading strategies.
🔶 USAGE
The N-bar reversal pattern extends the popular 3-bar reversal pattern. While the 3-bar reversal pattern involves identifying a sequence of three bars signaling a potential trend reversal, the N-bar reversal pattern builds on this concept by incorporating additional bars based on user settings. This provides a more comprehensive indication of potential trend reversals. The script automates the identification of these patterns and generates clear, visually distinct signals to highlight potential trend changes.
When a reversal chart pattern is confirmed and aligns with the price action, the pattern's boundaries are extended to create levels. The upper boundary serves as resistance, while the lower boundary acts as support.
The script allows users to filter patterns based on the trend direction identified by various trend indicators. Users can choose to view patterns that align with the detected trend or those that are contrary to it.
🔶 DETAILS
🔹 The N-bar Reversal Pattern
The N-bar reversal pattern is a technical analysis tool designed to signal potential trend reversals in the market. It consists of N consecutive bars, with the first N-1 bars used to identify the prevailing trend and the Nth bar confirming the reversal. Here’s a detailed look at the pattern:
Bullish Reversal : In a bullish reversal setup, the first bar is the highest among the first N-1 bars, indicating a prevailing downtrend. Most of the remaining bars in this sequence should be bearish (closing lower than where they opened), reinforcing the existing downward momentum. The Nth (most recent) bar confirms a bullish reversal if its high price is higher than the high of the first bar in the sequence (standard pattern). For a stronger signal, the closing price of the Nth bar should also be higher than the high of the first bar.
Bearish Reversal : In a bearish reversal setup, the first bar is the lowest among the first N-1 bars, indicating a prevailing uptrend. Most of the remaining bars in this sequence should be bullish (closing higher than where they opened), reinforcing the existing upward momentum. The Nth bar confirms a bearish reversal if its low price is lower than the low of the first bar in the sequence (standard pattern). For a stronger signal, the closing price of the Nth bar should also be lower than the low of the first bar.
🔹 Min Percentage of Required Candles
This parameter specifies the minimum percentage of candles that must be bullish (for a bearish reversal) or bearish (for a bullish reversal) among the first N-1 candles in a pattern. For higher values of N, it becomes more challenging for all of the first N-1 candles to be consistently bullish or bearish. By setting a percentage value, P, users can adjust the requirement so that only a minimum of P percent of the first N-1 candles need to meet the bullish or bearish condition. This allows for greater flexibility in pattern recognition, accommodating variations in market conditions.
🔶 SETTINGS
Pattern Type: Users can choose the type of the N-bar reversal patterns to detect: Normal, Enhanced, or All. "Normal" detects patterns that do not necessarily surpass the high/low of the first bar. "Enhanced" detects patterns where the last bar surpasses the high/low of the first bar. "All" detects both Normal and Enhanced patterns.
Reversal Pattern Sequence Length: Specifies the number of candles (N) in the sequence used to identify a reversal pattern.
Min Percentage of Required Candles: Sets the minimum percentage of the first N-1 candles that must be bullish (for a bearish reversal) or bearish (for a bullish reversal) to qualify as a valid reversal pattern.
Derived Support and Resistance: Toggles the visibility of the support and resistance levels/zones.
🔹 Trend Filtering
Filtering: Allows users to filter patterns based on the trend indicators: Moving Average Cloud, Supertrend, and Donchian Channels. The "Aligned" option only detects patterns that align with the trend and conversely, the "Opposite" option detects patterns that go against the trend.
🔹 Trend Indicator Settings
Moving Average Cloud: Allows traders to choose the type of moving averages (SMA, EMA, HMA, etc.) and set the lengths for fast and slow moving averages.
Supertrend: Options to set the ATR length and factor for Supertrend.
Donchian Channels: Option to set the length for the channel calculation.
🔶 RELATED SCRIPTS
Reversal-Candlestick-Structure.
Reversal-Signals.
Prometheus Black-Scholes Option PricesThe Black-Scholes Model is an option pricing model developed my Fischer Black and Myron Scholes in 1973 at MIT. This is regarded as the most accurate pricing model and is still used today all over the world. This script is a simulated Black-Scholes model pricing model, I will get into why I say simulated.
What is an option?
An option is the right, but not the obligation, to buy or sell 100 shares of a certain stock, for calls or puts respective, at a certain price, on a certain date (assuming European style options, American options can be exercised early). The reason these agreements, these contracts exist is to provide traders with leverage. Buying 1 contract to represent 100 shares of the underlying, more often than not, at a cheaper price. That is why the price of the option, the premium , is a small number. If an option costs $1.00 we pay $100.00 for it because 100 shares * 1 dollar per share = 100 dollars for all the shares. When a trader purchases a call on stock XYZ with a strike of $105 while XYZ stock is trading at $100, if XYZ stock moves up to $110 dollars before expiration the option has $5 of intrinsic value. You have the right to buy something at $105 when it is trading at $110. That agreement is way more valuable now, as a result the options premium would increase. That is a quick overview about how options are traded, let's get into calculating them.
Inputs for the Black-Scholes model
To calculate the price of an option we need to know 5 things:
Current Price of the asset
Strike Price of the option
Time Till Expiration
Risk-Free Interest rate
Volatility
The price of a European call option 𝐶 is given by:
𝐶 = 𝑆0 * Φ(𝑑1) − 𝐾 * 𝑒^(−𝑟 * 𝑇) * Φ(𝑑2)
where:
𝑆0 is the current price of the underlying asset.
𝐾 is the strike price of the option.
𝑟 is the risk-free interest rate.
𝑇 is the time to expiration.
Φ is the cumulative distribution function of the standard normal distribution.
𝑑1 and 𝑑2 are calculated as:
𝑑1 = (ln(𝑆0 / 𝐾) + (𝑟 + (𝜎^2 / 2)) * 𝑇) / (𝜎 * sqrt(𝑇))
𝑑2= 𝑑1 - (𝜎 * sqrt(𝑇))
𝜎 is the volatility of the underlying asset.
The price of a European put option 𝑃 is given by:
𝑃 = 𝐾 * 𝑒^(−𝑟 * 𝑇) * Φ(−𝑑2) − 𝑆0 * Φ(−𝑑1)
where 𝑑1 and 𝑑2 are as defined above.
Key Assumptions of the Black-Scholes Model
The price of the underlying asset follows a lognormal distribution.
There are no transaction costs or taxes.
The risk-free interest rate and volatility of the underlying asset are constant.
The underlying asset does not pay dividends during the life of the option.
The markets are efficient, meaning that all known information is already reflected in the prices.
Options can only be exercised at expiration (European-style options).
Understanding the Script
Here I have arrows pointing to specific spots on the table. They point to Historical Volatility and Inputted DTE . Inputted DTE is a value the user may input to calculate premium for options that expire in that many days. Historical Volatility , is the value calculated by this code.
length = 252 // One year of trading days
hv = ta.stdev(math.log(close / close ), length) * math.sqrt(365)
And then made daily like the Black-Scholes model needs from this step in the code.
hv_daily = request.security(syminfo.tickerid, "1D", hv)
The user has the option to input their own volatility to the Script. I will get into why that may be advantageous in a moment. If the user chooses to do so the Script will change which value it is using as so.
hv_in_use = which_sig == false ? hv_daily : sig
There is a lot going on in this image but bare with me, it will all make sense by the end. The column to the far left of both the green and maroon colored columns represent the strike price of the contract, if the numbers are white that means the contract is out of the money, gray means in the money. If you remember from the calculation this represents the price to buy or sell shares at, for calls or puts respective. The column second from the left shows a value for Simulated Market Price . This is a necessary part of this script so we can show changes in implied volatility. See, when we go to our brokerages and look at options prices, sure the price was calculated by a pricing model, but that is rarely the true price of the model. Market participant sentiment affects this value as their estimates for future volatility, Implied Volatility changes.
For example, if a call option is supposed to be worth $1.00 from the pricing model, however everyone is bullish on the stock and wants to buy calls, the premium may go to $1.20 from $1.00 because participants juice up the Implied Volatility . Higher Implied Volatility generally means higher premium, given enough time to expiration. Buying an option at $0.80 when it should be worth $1.00 due to changes in sentiment is a big part of the Quant Trading industry.
Of course I don't have access to an actual exchange so get prices, so I modeled participant decisions by adding or subtracting a small random value on the "perfect premium" from the Black-Scholes model, and solving for implied volatility using the Newton-Raphson method.
It is like when we have speed = distance / time if we know speed and time , we can solve for distance .
This is what models the changing Implied Volatility in the table. The other column in the table, 3rd from the left, is the Black-Scholes model price without the changes of a random number. Finally, the 4th column from the left is that Implied Volatility value we calculated with the modified option price.
More on Implied Volatility
Implied Volatility represents the future expected volatility of an asset. As it is the value in the future it is not know like Historical Volatility, only projected. We provide the user with the option to enter their own Implied Volatility to start with for better modeling of options close to expiration. If you want to model options 1 day from expiration you will probably have to enter a higher Implied Volatility so that way the prices will be higher. Since the underlying is so close to expiration they are traded so much and traders manipulate their Implied Volatility , increasing their value. Be safe while trading these!
Thank you all for clicking on my indicator and reading this description! Happy coding, Happy trading, Be safe!
Good reference: www.investopedia.com
Fibonacci Period Range [UkutaLabs]█ OVERVIEW
The Fibonacci Period Range Indicator is a powerful trading tool that draws levels of support and resistance that are based on key Fibonacci levels. The script will identify the high and low of a range that is specified by the user, then draw several levels of support and resistance based on Fibonacci levels.
The script will also draw extension levels outside of the specified range that are also based on Fibonacci levels. These extension levels can be turned off in the indicator settings.
Each level is also labelled to help traders understand what each line represents. These labels can be turned off in the indicator settings.
The purpose of this script is to simplify the trading experience of users by giving them the ability to customize the time period that is identified, then draw levels of support and resistance that are based on the price action during this time.
█ USAGE
In the indicator settings, the user has access to a setting called Session Range. This gives users control over the range that will be used.
The script will then identify the high and low of the range that was specified and draw several levels of support and resistance based on Fibonacci levels between this range. The user can also choose to have extension levels that display more levels outside of the range.
These lines will extend until the end of the current trading day at 5:00 pm EST.
█ SETTINGS
Configuration
• Display Mode: Determines the number of days that will be displayed by the script.
• Show Labels: Determines whether or not identifying labels will be displayed on each line.
• Font Size: Determines the text size of labels.
• Label Position: Determines the justification of labels.
• Extension Levels: Determines whether or not extension levels will be drawn outside of the high and low of the specified range.
Session
• Session Range: Determines the time period that will be used for calculations.
• Timezone Offset (+/-): Determines how many hours the session should be offset by.
Speedometer RevisitedSpeedometer Revisited is a new way to draw custom metric speedometers and is intended to be a utility for other coders to use.
@rumpypumpydumpy originally introduced the Speedometer Toolkit in version 4 of Pine Script. Since then, Pine Script has been updated to version 5, introducing some amazing new features such as polylines and chart.points. This indicator is an example of what can be done with these newer features.
The indicator starts off with a handful of functions that will be used to create the drawings. Notes are left throughout the code explaining what each line of the functions does. My goal was to make these functions user-friendly and somewhat easy to understand. I then demonstrate two examples: one speedometer with five segments and another with three.
The first example demonstrates how to visually represent the analysts' ratings for a stock using the built-in syminfo.recommendations. The speedometer is divided into five segments, each representing a different level of analyst recommendation: strong sell, sell, hold, buy, and strong buy.
Each segment is drawn using a polyline from the createSeg function, with colors assigned as follows:
Red for 'Strong Sell'
Maroon for 'Sell'
Yellow for 'Hold'
Green for 'Buy'
Lime for 'Strong Buy'
The script identifies the maximum value among the analyst ratings, calculates the midpoint of the corresponding segment, and draws a needle pointing to this midpoint.
The second example employs the speedometer design to display market sentiment through the put-call ratio. The put-call ratio is a gauge of investor sentiment, where values above 1 indicate a bearish sentiment (more puts being bought relative to calls), and values below 1 suggest a bullish outlook (more calls being bought relative to puts).
The speedometer is divided into three segments, reflecting different ranges of the put-call ratio:
Red for a ratio greater than 1 (bearish sentiment)
Yellow for a ratio between 0.8 and 1 (neutral to bearish sentiment)
Lime for a ratio less than 0.8 (bullish sentiment)
Depending on the value of the put-call ratio, the script calculates which segment the current value falls into and determines the appropriate segment number. The script calculates the midpoint of the selected segment and draws a needle pointing to this value.
Both examples show how the speedometer can be used as a visual indicator of certain market conditions, helping traders quickly recognize trends and adjust their strategies accordingly.
A big thanks to @rumpypumpydumpy for his original Speedometer Toolbox. I hope this take on it can be useful for other coders.
TrendLine Toolkit w/ Breaks (Real-Time)The TrendLine Toolkit script introduces an innovating capability by extending the conventional use of trendlines beyond price action to include oscillators and other technical indicators. This tool allows traders to automatically detect and display trendlines on any TradingView built-in oscillator or community-built script, offering a versatile approach to trend analysis. With breakout detection and real-time alerts, this script enhances the way traders interpret trends in various indicators.
🔲 Methodology
Trendlines are a fundamental tool in technical analysis used to identify and visualize the direction and strength of a price trend. They are drawn by connecting two or more significant points on a price chart, typically the highs or lows of consecutive price movements (pivots).
Drawing Trendlines:
Uptrend Line - Connects a series of higher lows. It signals an upward price trend.
Downtrend Line - Connects a series of lower highs. It indicates a downward price trend.
Support and Resistance:
Support Line - A trendline drawn under rising prices, indicating a level where buying interest is historically strong.
Resistance Line - A trendline drawn above falling prices, showing a level where selling interest historically prevails.
Identification of Trends:
Uptrend - Prices making higher highs and higher lows.
Downtrend - Prices making lower highs and lower lows.
Sideways (or Range-bound) - Prices moving within a horizontal range.
A trendline helps confirm the existence and direction of a trend, providing guidance in aligning with the prevailing market sentiment. Additionally, they are usually paired with breakout analysis, a breakout occurs when the price breaches a trendline. This signals a potential change in trend direction or an acceleration of the existing trend.
The script adapts this methodology to oscillators and other indicators. Instead of relying on price pivots, which can only be detected in retrospect, the script utilizes a trailing stop on the oscillator to identify potential swings in real-time, you may find more info about it here (SuperTrend toolkit) . We detect swings or pivots simply by testing for crosses between the indicator and its trailing stop.
type oscillator
float o = Oscillator Value
float s = Trailing Stop Value
oscillator osc = oscillator.new()
bool l = ta.crossunder(osc.o, osc.s) => Utilized as a formed high
bool h = ta.crossover (osc.o, osc.s) => Utilized as a formed low
This approach enables the algorithm to detect trendlines between consecutive pivot highs or lows on the oscillator itself, providing a dynamic and immediate representation of trend dynamics.
🔲 Breakout Detection
The script goes beyond trendline creation by incorporating breakout detection directly within the oscillator. After identifying a trendline, the algorithm continuously monitors the oscillator for potential breakouts, signaling shifts in market sentiment.
🔲 Setup Guide
A simple example on one of my public scripts, Z-Score Heikin-Ashi Transformed
🔲 Settings
Source - Choose an oscillator source of which to base the Toolkit on.
Zeroing - The Mid-Line value of the oscillator, for example RSI & MFI use 50.
Sensitivity - Calibrates the Sensitivity of which TrendLines are detected, higher values result in more detections.
🔲 Alerts
Bearish TrendLine
Bullish TrendLine
Bearish Breakout
Bullish Breakout
As well as the option to trigger 'any alert' call.
By integrating trendline analysis into oscillators, this Toolkit enhances the capabilities of technical analysis, bringing a dynamic and comprehensive approach to identifying trends, support/resistance levels, and breakout signals across various indicators.
Squeeze & Release [AlgoAlpha]Introduction:
💡The Squeeze & Release by AlgoAlpha is an innovative tool designed to capture price volatility dynamics using a combination of EMA-based calculations and ATR principles. This script aims to provide traders with clear visual cues to spot potential market squeezes and release scenarios. Hence it is important to note that this indicator shows information on volatility, not direction.
Core Logic and Components:
🔶EMA Calculations: The script utilizes the Exponential Moving Average (EMA) in multiple ways to smooth out the data and provide indicator direction. There are specific lengths for the EMAs that users can modify as per their preference.
🔶ATR Dynamics: Average True Range (ATR) is a core component of the script. The differential between the smoothed ATR and its EMA is used to plot the main line. This differential, when represented as a percentage of the high-low range, provides insights into volatility.
🔶Squeeze and Release Detection: The script identifies and highlights squeeze and release scenarios based on the crossover and cross-under events between our main line and its smoothed version. Squeezes are potential setups where the market may be consolidating, and releases indicate a potential breakout or breakdown.
🔶Hyper Squeeze Detection: A unique feature that detects instances when the main line is rising consistently over a user-defined period. Hyper squeeze marks areas of extremely low volatility.
Visual Components:
The main line (ATR-based) changes color depending on its position relative to its EMA.
A middle line plotted at zero level which provides a quick visual cue about the main line's position. If the main line is above the zero level, it indicates that the price is squeezing on a longer time horizon, even if the indicator indicates a shorter-term release.
"𝓢" and "𝓡" characters are plotted to represent 'Squeeze' and 'Release' scenarios respectively.
Standard Deviation Bands are plotted to help users gauge the extremity and significance of the signal from the indicator, if the indicator is closer to either the upper or lower deviation bands, this means that statistically, the current value is considered to be more extreme and as it is further away from the mean where the indicator is oscillating at for the majority of the time. Thus indicating that the price has experienced an unusual amount or squeeze or release depending on the value of the indicator.
Usage Guidelines:
☝️Traders can use the script to:
Identify potential consolidation (squeeze) zones.
Gauge potential breakout or breakdown scenarios (release).
Fine-tune their entries and exits based on volatility.
Adjust the various lengths provided in the input for better customization based on individual trading styles and the asset being traded.
41-80 F&O MA ScreenerThis Pine Script is a TradingView indicator named "41-80-F&O EMA Screener." It calculates and displays four moving averages (MA1, MA2, MA3, and MA4) and the Relative Strength Index (RSI) on a chart. The script generates buy and short signals based on certain conditions involving the moving averages and RSI. Additionally, it includes a screener section that displays a table of symbols with buy and short signals.
Here's a breakdown of the key components:
Moving Averages (MAs):
MA1: Simple Moving Average with length len1 (green line).
MA2: Simple Moving Average with length len2 (red line).
MA3: Simple Moving Average with length len3 (orange line).
MA4: Simple Moving Average with length len4 (black line).
Relative Strength Index (RSI):
The RSI is calculated with a length of rsiLengthInput and a source specified by rsiSourceInput.
Conditions for Buy and Short Signals:
Buy Signal: When MA1 is above MA2 and MA3, and RSI is above 50.
Short Signal: When MA1 is below MA2 and MA3, and RSI is below 50.
Signal Plots:
Buy signals are plotted as "B" below the corresponding bars.
Short signals are plotted as "S" above the corresponding bars.
Background Coloring:
Bars are colored based on their opening and closing prices.
Screener Section:
The script defines a watchlist (gticker) with 40 predefined symbols.
It then calls the getSignal function for each symbol to identify buy and short signals.
The results are displayed in a table with long signals in green and short signals in red.
Table Theming:
The script allows customization of the table's background, frame, and text colors, as well as the text size.
The table's location on the chart can also be customized.
Please note that the script uses the Mozilla Public License 2.0. Make sure to review and comply with the terms of this license if you plan to use or modify the script.
Candle size in pipsDescription
Enhance your trading strategy with precision using this script, designed to measure the range of a candle from wick to wick in pips. Whether you're implementing a specific pip requirement within a candle for your strategy, or simply seeking to better understand market dynamics, this tool provides valuable insights. The script is calculating the amount of pips between the high and the low then compares it to the minimal size you declared. If the amount of pips is more or equal to minimal size it will show the label.
Features
Alert Functionality: Opt to receive alerts by checking the checkbox (default: false).
Customizable Pip Threshold: Tailor the script to your needs by setting the minimum required pips to display on the screen (default: 12).
Different shape: circle, triangle up, triangle down, none
How to Use
Personalize your trading approach by integrating this script with your preferred strategy. For instance, in my strategy involving a 3M continuation, I leverage this tool to determine the pip count of the M15 candle before making entry decisions.
Note: Ensure you understand your strategy's requirements and adjust the script settings accordingly for optimal result s.
Feel free to reach out if you have any questions or require further assistance in maximizing the utility of this script.
New York Sessions Morning, Lunch and afternoon. AMKDescription
The script is designed to highlight the New York Stock Exchange's trading day, broken down into three specific sub-sessions: morning, lunchtime, and afternoon. Each sub-session is color-coded to provide an immediate visual cue about which portion of the trading day is currently active. Additionally, this script allows the user to adjust the time zone offset, making it adaptable for traders in different time zones around the world.
Originality
While there are scripts that highlight the entire trading day or specific market hours, this script adds granularity by breaking down the New York trading session into its typical behavioral parts: the morning rush, the lunchtime lull, and the afternoon action. The addition of an adjustable time zone offset is a unique feature that makes the tool more versatile and accommodating to a global user base.
Usefulness
The ability to visualize these different trading sessions can be valuable for various types of traders:
Day Traders: The script helps to immediately identify which session they are in, aiding in their trading strategy as market behavior can vary between these periods.
Swing Traders: They may use these sub-sessions to time their entries or exits, especially if they're based in different time zones.
Market Analysts: The color-coded sessions provide a quick way to analyze the historical performance and volatility of an asset during different trading periods.
Global Traders: The time zone adjustment feature makes it easy for traders outside of the Eastern Time Zone to customize the script according to their local time, increasing its utility across different markets.
Educational Purpose: For new traders, this could serve as an educational tool to understand the typical behavior of the stock market at different times of the day.
So, whether you're timing an intraday entry or looking for patterns tied to specific market sessions, this script offers a straightforward, visual way to keep track of where you are in the trading day.
Liquidation Estimates (Real-Time) [LuxAlgo]The Liquidation Estimates (Real-Time) experimental indicator attempts to highlight real-time long and short liquidations on all timeframes. Here with liquidations, we refer to the process of forcibly closing a trader's position in the market.
By analyzing liquidation data, traders can gauge market sentiment, identify potential support and resistance levels, identify potential trend reversals, and make informed decisions about entry and exit points.
🔶 USAGE
Liquidation refers to the process of forcibly closing a trader's position. It occurs when a trader's margin account can no longer support their open positions due to significant losses or a lack of sufficient margin to meet the maintenance requirements.
Liquidations can be categorized as either a long liquidation or a short liquidation. A long liquidation is a situation where long positions are being liquidated, while short liquidation is a situation where short positions are being liquidated.
The green bars indicate long liquidations – meaning the number of long positions liquidated in the market. Typically, long liquidations occur when there is a sudden drop in the asset price that is being traded. This is because traders who were bullish on the asset and had opened long positions on the same will now face losses since the market has moved against them.
Similarly, the red bars indicate short liquidations – meaning the number of short positions liquidated in the futures market. Short liquidations occur when there is a sudden spike in the price of the asset that is being traded. This is because traders who were bearish on the asset and had opened short positions will now face losses since the market has moved against them.
Liquidation patterns or clusters of liquidations could indicate potential trend reversals.
🔹 Dominance
Liquidation dominance (Difference) displays the difference between long and short liquidations, aiming to help identify the dominant side.
🔹 Total Liquidations
Total liquidations display the sum of long and short liquidations.
🔹 Cumulative Liquidations
Cumulative liquidations are essentially the cumulative sum of the difference between short and long liquidations aiming to confirm the trend and the strength of the trend.
🔶 DETAILS
It's important to note that liquidation data is not provided on the Trading View's platform or can not be fetched from anywhere else.
Yet we know that the liquidation data is closely tied in with trading volumes in the market and the movement in the underlying asset’s price. As a result, this script analyzes available data sources extracts the required information, and presents an educated estimate of the liquidation data.
The data presented does not reflect the actual individual quantitative value of the liquidation data, traders and analysts shall look to the changes over time and the correlation between liquidation data and price movements.
The script's output with the default option values has been visually checked/compared with the liquidation chart presented on coinglass.com.
🔶 SETTINGS
🔹Liquidations Input
Mode: defines the presentation of the liquidations chart. Details are given in the tooltip of the option.
Longs Reference Price: defines the base price in calculating long liquidations.
Shorts Reference Price: defines the base price in calculating short liquidations.
🔶 RELATED SCRIPTS
Liquidation-Levels
Liquidity-Sentiment-Profile
Buyside-Sellside-Liquidity
Intraday Volatility Bands [Honestcowboy]The Intraday Volatility Bands aims to provide a better alternative to ATR in the calculation of targets or reversal points.
How are they different from ATR based bands?
While ATR and other measures of volatility base their calculations on the previous bars on the chart (for example bars 1954 to 1968). The volatility used in these bands measure expected volatility during that time of the day.
Why would you take this approach?
Markets behave different during certain times of the day, also called sessions.
Here are a couple examples.
Asian Session (generally low volatility)
London Session (bigger volatility starts)
New York Session (overlap of New York with London creates huge volatility)
Generally when using bands or channel type indicators intraday they do not account for the upcoming sessions. On London open price will quickly spike through a bollinger band and it will take some time for the bands to adjust to new volatility.
This script will show expected volatility targets at the start of each new bar and will not adjust during the bar. It already knows what price is expected to do at this time of day.
Script also plots arrows when price breaches either the top or bottom of the bands. You can also set alerts for when this occurs. These are non repainting as the script knows the level at start of the bar and does not change.
🔷 CALCULATION
Think of this script like an ATR but instead it uses past days data instead of previous bars data. Charts below should visualise this more clearly:
The scripts measure of volatility is based on a simple high-low.
The script also counts the number of bars that exist in a day on your current timeframe chart. After knowing that number it creates the matrix used in it's calculations and data storage.
See how it works perfectly on a lower timeframe chart below:
Getting this right was the hardest part, check the coding if you are interested in this type of stuff. I commented every step in the coding process.
🔷 SETTINGS
Every setting of the script has a tooltip but I provided a breakdown here:
Some more examples of different charts:
Liquidity Sentiment Profile (Auto-Anchored) [LuxAlgo]
The Liquidity Sentiment Profile (Auto-Anchored) is an advanced charting tool that measures by combining PRICE and VOLUME data over specified anchored periods and highlights the distribution of the liquidity and the market sentiment at specific price levels. This version is a variation of the previously published Liquidity Sentiment Profile , wherewith this version allows users to select a variety of different anchoring periods, such as 'Auto', 'Fixed Range', 'Swing High', 'Swing Low', 'Session', 'Day', 'Week', 'Month', 'Quarter', and 'Year'
Liquidity refers to the availability of orders at specific price levels in the market, allowing transactions to occur smoothly.
🔶 USAGE
A Liquidity Sentiment Profile (Auto-Anchored) is a combination of liquidity and a sentiment profile, where the right side of the profile highlights the distribution of the traded activity at different price levels, and the left side of the profile highlights the market sentiment at those price levels
The liquidity profile is categorized by assigning different colors based on the significance of the traded activity of the specific price levels, allowing traders to reveal significant price levels, such as support and resistance levels, supply and demand zones, liquidity gaps, consolidation zones, etc
The Liquidity Sentiment Profiles aim to present Value Areas based on the significance of price levels, thus allowing users to identify value areas that can be formed more than once within the range of a single profile
Level of Significance Line - displays the changes in the price levels with the highest traded activity (developing POC)
Buyside & Sellside Liquidity Zones - displays Liquidity Levels, also known as Supply and Demand Zones
🔶 SETTINGS
The script takes into account user-defined parameters and plots the profiles, where detailed usage for each user-defined input parameter in indicator settings is provided with the related input's tooltip.
🔹 Liquidity Sentiment Profile
Anchor Period: The indicator resolution is set by the input of the Anchor Period.
Fixed Period: Applicable if the Anchor Period is set to 'Fixed Range' then the period of the profile is defined with this option
Swing Detection Length: Applicable if the Anchor Period is set to 'Swing High' or 'Swing Low' then the length required to detect the Swing Levels is defined with this option which is then used to determine the period of the profile
🔹 Liquidity Profile
Liquidity Profile: Toggles the visibility of the Liquidity Profiles
High Traded Nodes: Threshold and Color option for High Traded Nodes
Average Traded Nodes: Color option for Average Traded Nodes
Low Traded Nodes: Threshold and Color option for Low Traded Nodes
🔹 Sentiment Profile
Sentiment Profile: Toggles the visibility of the Sentiment Profiles
Bullish Nodes: Color option for Bullish Nodes
Bearish Nodes: Color option for Bearish Nodes
🔹 Buyside & Sellside Liquidity Zones
Buyside & Sellside Liquidity Zones: Toggles the visibility of the Liquidity Levels
Buyside Liquidity Nodes: Color option for Buyside Liquidity Nodes
Sellside Liquidity Nodes: Color option for Sellside Liquidity Nodes
🔹 Other Settings
Level of Significance: Toggles the visibility of the Level of Significance Line
Price Levels, Color: Toggles the visibility of the Profile Price Levels
Number of Rows: Specify how many rows each profile histogram will have. Caution, having it set to high values will quickly hit Pine Script™ drawing objects limit and fewer historical profiles will be displayed
Profile Width %: Alters the width of the rows in the histogram, relative to the profile length
Profile Range Background Fill: Toggles the visibility of the Profiles Range
🔶 RELATED SCRIPTS
Liquidity-Sentiment-Profile
Buyside-Sellside-Liquidity
ICT-Concepts
Candle Close AlertCandle Close Alert (CCA) :
The "Candle Close Alert" (CCA) is a custom technical analysis tool. It operates as an overlay on price charts and serves to detect and notify users about significant changes in consecutive candle closes. The script calculates the difference between the closing price of the current candle and the previous candle, referred to as the "close difference." It then compares this close difference against a user-specified threshold value.
When the close difference exceeds the threshold, the script triggers an alert, notifying users of a potential noteworthy event. This alert can serve as a prompt for traders and investors to investigate the current price action further or to consider possible trading decisions .
Additionally, the script enhances visualization by plotting the close differences on the price chart. Positive close differences exceeding the threshold are plotted in green, while negative close differences exceeding the threshold in magnitude are plotted in red. This color-coded visualization helps users quickly identify periods of significant price movement and potential market trends.
However, it's important to note that the CCA script is a standalone tool and should be used in conjunction with comprehensive market analysis. Trading decisions should not be solely based on the alerts and visualizations provided by this script. Instead, they should be considered within the broader context of other technical indicators, fundamental analysis, and risk management strategies. Enjoy it!
Liquidity Levels/Voids (VP) [LuxAlgo]The Liquidity Levels/Voids (VP) is a script designed to detect liquidity voids & levels by measuring traded volume at all price levels on the market between two swing points and highlighting the distribution of the liquidity voids & levels at specific price levels.
🔶 USAGE
Liquidity is a fundamental market force that shapes the trajectory of assets.
The creation of a liquidity level comes as a result of an initial imbalance of supply/demand, which forms what we know as a swing high or swing low. As more players take positions in the market, these are levels that market participants will use as a historical reference to place their stops. When the levels are then re-tested, a decision will be made. The binary outcome here can be a breakout of the level or a reversal back to the mean.
Liquidity voids are sudden price changes that occur in the market when the price jumps from one level to another with little trading activity (low volume), creating an imbalance in price. The price tends to fill or retest the liquidity voids area, and traders understand at which price level institutional players have been active.
Liquidity voids are a valuable concept in trading, as they provide insights about where many orders were injected, creating this inefficiency in the market. The price tends to restore the balance.
🔶 SETTINGS
The script takes into account user-defined parameters and detects the liquidity voids based on them, where detailed usage for each user-defined input parameter in indicator settings is provided with the related input's tooltip.
🔹 Liquidity Levels / Voids
Liquidity Levels/Voids: Color customization option for Unfilled Liquidity Levels/Voids.
Detection Length: Lookback period used for the calculation of Swing Levels.
Threshold %: Threshold used for the calculation of the Liquidity Levels & Voids.
Sensitivity: Adjusts the number of levels between two swing points, as a result, the height of a level is determined, and then based on the above-given threshold the level is checked if it matches the liquidity level/void conditions.
Filled Liquidity Levels/Voids: Toggles the visibility of the Filled Liquidity Levels/Voids and color customization option for Filled Liquidity Levels/Voids.
🔹 Other Features
Swing Highs/Lows: Toggles the visibility of the Swing Levels, where tooltips present statistical information, such as price, price change, and cumulative volume between the two swing levels detected based on the detection length specified above, Coloring options to customize swing low and swing high label colors, and Size option to adjust the size of the labels.
🔹 Display Options
Mode: Controls the lookback length of detection and visualization.
# Bars: Lookback length customization, in case Mode is set to Present.
🔶 RELATED SCRIPTS
Liquidity-Voids-FVG
Buyside-Sellside-Liquidity
Swing-Volume-Profiles
AI SuperTrend Clustering Oscillator [LuxAlgo]The AI SuperTrend Clustering Oscillator is an oscillator returning the most bullish/average/bearish centroids given by multiple instances of the difference between SuperTrend indicators.
This script is an extension of our previously posted SuperTrend AI indicator that makes use of k-means clustering. If you want to learn more about it see:
🔶 USAGE
The AI SuperTrend Clustering Oscillator is made of 3 distinct components, a bullish output (always the highest), a bearish output (always the lowest), and a "consensus" output always within the two others.
The general trend is given by the consensus output, with a value above 0 indicating an uptrend and under 0 indicating a downtrend. Using a higher minimum factor will weigh results toward longer-term trends, while lowering the maximum factor will weigh results toward shorter-term trends.
Strong trends are indicated when the bullish/bearish outputs are indicating an opposite sentiment. A strong bullish trend would for example be indicated when the bearish output is above 0, while a strong bearish trend would be indicated when the bullish output is below 0.
When the consensus output is indicating a specific trend direction, an opposite indication from the bullish/bearish output can highlight a potential reversal or retracement.
🔶 DETAILS
The indicator construction is based on finding three clusters from the difference between the closing price and various SuperTrend using different factors. The centroid of each cluster is then returned. This operation is done over all historical bars.
The highest cluster will be composed of the differences between the price and SuperTrends that are the highest, thus creating a more bullish group. The lowest cluster will be composed of the differences between the price and SuperTrends that are the lowest, thus creating a more bearish group.
The consensus cluster is composed of the differences between the price and SuperTrends that are not significant enough to be part of the other clusters.
🔶 SETTINGS
ATR Length: ATR period used for the calculation of the SuperTrends.
Factor Range: Determine the minimum and maximum factor values for the calculation of the SuperTrends.
Step: Increments of the factor range.
Smooth: Degree of smoothness of each output from the indicator.
🔹 Optimization
This group of settings affects the runtime performances of the script.
Maximum Iteration Steps: Maximum number of iterations allowed for finding centroids. Excessively low values can return a better script load time but poor clustering.
Historical Bars Calculation: Calculation window of the script (in bars).
SuperTrend AI (Clustering) [LuxAlgo]The SuperTrend AI indicator is a novel take on bridging the gap between the K-means clustering machine learning method & technical indicators. In this case, we apply K-Means clustering to the famous SuperTrend indicator.
🔶 USAGE
Users can interpret the SuperTrend AI trailing stop similarly to the regular SuperTrend indicator. Using higher minimum/maximum factors will return longer-term signals.
The displayed performance metrics displayed on each signal allow for a deeper interpretation of the indicator. Whereas higher values could indicate a higher potential for the market to be heading in the direction of the trend when compared to signals with lower values such as 1 or 0 potentially indicating retracements.
In the image above, we can notice more clear examples of the performance metrics on signals indicating trends, however, these performance metrics cannot perform or predict every signal reliably.
We can see in the image above that the trailing stop and its adaptive moving average can also act as support & resistance. Using higher values of the performance memory setting allows users to obtain a longer-term adaptive moving average of the returned trailing stop.
🔶 DETAILS
🔹 K-Means Clustering
When observing data points within a specific space, we can sometimes observe that some are closer to each other, forming groups, or "Clusters". At first sight, identifying those clusters and finding their associated data points can seem easy but doing so mathematically can be more challenging. This is where cluster analysis comes into play, where we seek to group data points into various clusters such that data points within one cluster are closer to each other. This is a common branch of AI/machine learning.
Various methods exist to find clusters within data, with the one used in this script being K-Means Clustering , a simple iterative unsupervised clustering method that finds a user-set amount of clusters.
A naive form of the K-Means algorithm would perform the following steps in order to find K clusters:
(1) Determine the amount (K) of clusters to detect.
(2) Initiate our K centroids (cluster centers) with random values.
(3) Loop over the data points, and determine which is the closest centroid from each data point, then associate that data point with the centroid.
(4) Update centroids by taking the average of the data points associated with a specific centroid.
Repeat steps 3 to 4 until convergence, that is until the centroids no longer change.
To explain how K-Means works graphically let's take the example of a one-dimensional dataset (which is the dimension used in our script) with two apparent clusters:
This is of course a simple scenario, as K will generally be higher, as well the amount of data points. Do note that this method can be very sensitive to the initialization of the centroids, this is why it is generally run multiple times, keeping the run returning the best centroids.
🔹 Adaptive SuperTrend Factor Using K-Means
The proposed indicator rationale is based on the following hypothesis:
Given multiple instances of an indicator using different settings, the optimal setting choice at time t is given by the best-performing instance with setting s(t) .
Performing the calculation of the indicator using the best setting at time t would return an indicator whose characteristics adapt based on its performance. However, what if the setting of the best-performing instance and second best-performing instance of the indicator have a high degree of disparity without a high difference in performance?
Even though this specific case is rare its however not uncommon to see that performance can be similar for a group of specific settings (this could be observed in a parameter optimization heatmap), then filtering out desirable settings to only use the best-performing one can seem too strict. We can as such reformulate our first hypothesis:
Given multiple instances of an indicator using different settings, an optimal setting choice at time t is given by the average of the best-performing instances with settings s(t) .
Finding this group of best-performing instances could be done using the previously described K-Means clustering method, assuming three groups of interest (K = 3) defined as worst performing, average performing, and best performing.
We first obtain an analog of performance P(t, factor) described as:
P(t, factor) = P(t-1, factor) + α * (∆C(t) × S(t-1, factor) - P(t-1, factor))
where 1 > α > 0, which is the performance memory determining the degree to which older inputs affect the current output. C(t) is the closing price, and S(t, factor) is the SuperTrend signal generating function with multiplicative factor factor .
We run this performance function for multiple factor settings and perform K-Means clustering on the multiple obtained performances to obtain the best-performing cluster. We initiate our centroids using quartiles of the obtained performances for faster centroids convergence.
The average of the factors associated with the best-performing cluster is then used to obtain the final factor setting, which is used to compute the final SuperTrend output.
Do note that we give the liberty for the user to get the final factor from the best, average, or worst cluster for experimental purposes.
🔶 SETTINGS
ATR Length: ATR period used for the calculation of the SuperTrends.
Factor Range: Determine the minimum and maximum factor values for the calculation of the SuperTrends.
Step: Increments of the factor range.
Performance Memory: Determine the degree to which older inputs affect the current output, with higher values returning longer-term performance measurements.
From Cluster: Determine which cluster is used to obtain the final factor.
🔹 Optimization
This group of settings affects the runtime performances of the script.
Maximum Iteration Steps: Maximum number of iterations allowed for finding centroids. Excessively low values can return a better script load time but poor clustering.
Historical Bars Calculation: Calculation window of the script (in bars).
Liquidity Sentiment Profile [LuxAlgo]The Liquidity Sentiment Profile is an advanced charting tool that measures by combining PRICE and VOLUME data over specified anchored periods and highlights within a sequence of profiles the distribution of the liquidity and the market sentiment at specific price levels.
The Liquidity Sentiment Profile allows traders to reveal significant price levels, dominant market sentiment, support and resistance levels, supply and demand zones, liquidity availability levels, liquidity gaps, consolidation zones, and more based on price and volume data.
Liquidity refers to the availability of orders at specific price levels in the market, allowing transactions to occur smoothly.
🔶 USAGE
A Liquidity Sentiment Profile is a combination of a liquidity and a sentiment profile, where the right part of the profile displays the distribution of the traded activity at different price levels and the left part displays the market sentiment at those price levels.
The Liquidity Sentiment Profiles are visualized with different colors, where each color has a different meaning.
The Liquidity Sentiment Profiles aim to present Value Areas based on the significance of price levels, thus allowing users to identify value areas that can be formed more than once within the range of a single profile.
Level of Significance Line - displays the changes in the price levels with the highest traded activity (developing POC)
🔶 SETTINGS
The script takes into account user-defined parameters and plots the profiles, where detailed usage for each user-defined input parameter in indicator settings is provided with the related input's tooltip.
🔹 Liquidity Sentiment Profiles
Anchor Period: The indicator resolution is set by the input of the Anchor Period, the default option is AUTO.
🔹 Liquidity Profile Settings
Liquidity Profile: Toggles the visibility of the Liquidity Profiles
High Traded Nodes: Threshold and Color option for High Traded Nodes
Average Traded Nodes: Color option for Average Traded Nodes
Low Traded Nodes: Threshold and Color option for Low Traded Nodes
🔹 Sentiment Profile Settings
Sentiment Profile: Toggles the visibility of the Sentiment Profiles
Bullish Nodes: Color option for Bullish Nodes
Bearish Nodes: Color option for Bearish Nodes
🔹 Other Settings
Level of Significance: Toggles the visibility of the Level of Significance Line
Profile Price Levels: Toggles the visibility of the Profile Price Levels
Number of Rows: Specify how many rows each profile histogram will have. Caution, having it set to high values will quickly hit Pine Script™ drawing objects limit and fewer historical profiles will be displayed
Profile Width %: Alters the width of the rows in the histogram, relative to the profile length
Profile Range Background Fill: Toggles the visibility of the Profiles Range
🔶 LIMITATIONS
The amount of drawing objects that can be used is limited, as such using a high number of rows can display fewer historical profiles and occasionally incomplete profiles.
🔶 RELATED SCRIPTS
🔹 Buyside-Sellside-Liquidity
🔹 ICT-Concepts
🔹 Swing-Volume-Profiles